package com;

import java.lang.annotation.*;

/**
 * @author N_Xiang
 * @describe 自定义结构体注解
 * @time 2022/2/24 10:17 下午
 */
@Target({ElementType.FIELD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Struct {
    int order(); //排序，java反射后没有顺序，所以需要排序字段辅助
    StructEnum value() default StructEnum.Null; //枚举，如果要将byte数组取出为2进制字符串时，需要使用
    int length() default 0;  //长度，标识byte[]和String类型的变量需要取出多少个字节
    String lengthMethod() default ""; //动态长度，如果当前字段获取需要获取的字节长度是依靠上面某个字段定义的，需要使用这个属性
}